package com.example.flashsales.mappers;

import com.example.flashsales.entity.dto.AdminDto;
import com.example.flashsales.entity.pojo.Admin;
import com.example.flashsales.entity.pojo.Method;
import com.example.flashsales.entity.pojo.Role;
import com.example.flashsales.entity.vo.AdminVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface RoleMapper {
    //查看权限
    List<Integer> viewRole(@Param("adminId") int adminId);


    //查看全部权限
    List<Role> viewAllRole();

    //登录
    Admin login(AdminDto adminDto);

    //注册管理人员
    Integer register(AdminDto adminDto);

    //根据账号查询后台人员
    Admin viewAdminByAccount(@Param("account") String account);

    //根据id查询
    Admin viewAdminById(@Param("adminId") Integer adminId);

    //修改状态
    Integer updateAdminState(@Param("adminId") Integer adminId, @Param("state") int i);

    //查看所有后台人员
    List<AdminVo> viewAllAdmin(@Param("adminId") Integer adminId, @Param("phone") String phone,@Param("s") Integer s,@Param("state")Integer state);

    //查看所有方法
    List<Method> viewAllMethod();

    //根据角色查看方法
    List<Method> viewMethodByState(@Param("roleId") Integer state);

    //增加Role_Admin
    Integer addAdminRole(@Param("adminId") int id, @Param("role") Integer state);

    //查看没有的方法
    List<Method> viewNoYesMethod(@Param("adminId") Integer admin,@Param("state") Integer state);

    //管理员 方法
    Integer addMethodToAdmin(@Param("adminId") Integer adminId, @Param("methodId") Integer methodId, @Param("state") int i);

    Method viewMethodByMethodIdAndAdminId(@Param("adminId") Integer adminId, @Param("methodId") Integer methodId);

    //修改状态方法
    Integer updateMethodState(@Param("adminId") Integer adminId, @Param("methodId") Integer method, @Param("state") int i);
}
